﻿#include<iostream>
using namespace std;
#include <stdlib.h>
#include <time.h>
//编写代码在一个整形有序数组中查找具体的某个数:二分法
// 要求：找到了就打印数字所在的下标，找不到则输出：找不到。
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int left = 0;
	int right = sizeof(arr) / sizeof(arr[0]) - 1;
	int key;
	int mid = 0;

	cout << "请输入您要查找的数据：";
	cin >> key;
	while (left <= right)
	{
		mid = (left + right) / 2;
		if (arr[mid] > key)
		{
			right = mid - 1;
		}
		else if (arr[mid] < key)
		{
			left = mid + 1;
		}
		else
			break;
	}
	if (left <= right)
		printf("找到了,下标是%d\n", mid);
	else
		printf("找不到\n");
}


//void menu()
//{
//	printf("**********************************\n");
//	printf("*********** 1.play   **********\n");
//	printf("*********** 0.exit   **********\n");
//	printf("**********************************\n");
//}
////RAND_MAX--rand函数能返回随机数的最大值。
//void game()
//{
//	int random_num = rand() % 100 + 1;
//	int input = 0;
//	while (1)
//	{
//		cout << "请输入猜的数字>:";
//		cin >> input;
//		if (input > random_num)
//		{
//			printf("猜大了\n");
//		}
//		else if (input < random_num)
//		{
//			printf("猜小了\n");
//		}
//		else
//		{
//			printf("恭喜你，猜对了\n");
//			break;
//		}
//	}
//}
//int main()
//{
//	int input = 0;
//	srand((unsigned)time(NULL));
//	do
//	{
//		menu();
//		cout << "请选择>:";
//		cin >> input;
//		switch (input)
//		{
//		case 1:
//			game();
//			break;
//		case 0:
//			break;
//		default:
//			cout << "选择错误,请重新输入!" << endl;
//			break;
//		}
//	} while (input);
//	return 0;
//}

////编写程序数一下 1到 100 的所有整数中出现多少个数字9
//int main()
//{
//	int num = 0;
//	for (int i = 1; i <= 100; i++)
//	{
//		if (i % 10 == 9)
//		{
//			num++;
//		}
//		if (i / 10 == 9)
//		{
//			num++;
//		}
//	}
//
//	cout << "num = " << num << endl;
//	return 0;
//}


////计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值，打印出结果
//
//int main()
//{
//	float sum = 0.0;
//	for (int i = 1; i <= 100; i++)
//	{
//		sum += 1.0 / i * pow(-1, i + 1);
//	}
//
//	cout << "sum = " << sum << endl;
//	return 0;
//}